perm filename TENGWR.DON[UP,DOC] blob sn#211641 filedate 1976-04-22 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002				The TENGWAR Type Fonts
C00005 00003	The Character Set
C00007 00004	Use of the Fonts
C00009 00005	The TENGWR Program
C00014 00006	Using Tengwar from POX
C00020 ENDMK
C⊗;
			The TENGWAR Type Fonts


Introduction
============

	In case you're reading this to find out what on earth `Tengwar' is,
it's  the Elvish script  as described in  J. R. R.  Tolkien's trilogy, "The
Lord of the Rings".  It being primarily a phonetic alphabet, it may be used
to represent  most Indo-European languages.   (It does not do  so well with
the clicks and intonations used by various African and Oriental languages.)

	Three type fonts are available at SAIL for producing Tengwar on the
XGP.  The smallest is TNG40 and comes from Bob Currier at ISI.  It includes
all the characters given in Appendix E of the trilogy, and is perhaps a bit
closer to  the `handwritten'  form than are  the other two  fonts.   On the
other hand,  it has a bit more trouble fitting in some of the tehtar.  (For
the uninitiated: `Tehtar'  are sort of like  accent marks, and are  used to
indicate vowels.  They usually  go above the character (`tengwa') which the
vowel precedes.  This is the last time you'll get an explanation like this.
Go read  the book.) The  medium- and large-sized  fonts, TNG75  and TNG112,
were designed by  DON at SAIL, and do not include characters whose phonetic
meanings were unspecified  (specifically, numbers 19, 24,  26, 28, 34,  35,
and 36).  They do include multiple  versions of the `o' and `u' tehtar; the
wider versions may be used with the wider tengwar.

	Only  rudimentary punctuation  is  included  in the  fonts,  namely
period,  comma, colon, semi-colon,  exclamation point, hyphen,  and (in the
SAIL  fonts  only)  question  mark.    The  SAIL  fonts  also  include  the
abbreviations for `of', `the', and `of the'  as used in the sample given in
the books.  Digits are not available.
The Character Set
=================

	The ASCII-Tengwar correspondence  used in the fonts is  pretty much
the same  as in the English sample in the  trilogy.  Upper-case letters are
used for  the  characters: BCDFGHJKLMNPRSTVWYZ.    Lower-case is  used  for
related characters: d=dh as in `them', t=th as in `think', c=ch, s=sh, z=zh
(`vision'),  g=gh (German  `ach'), j=ng, r=trilled  r (as  used in French).
The basic tehtar are also lower-case letters: aeiou.  The nasal bar is `n',
the double-dot for following y is `y', the double or `long' bar is `≡', and
the trailing s (as in `box' or `klutz') is `~'.  The inverted S and Z are ∂
and ¬ respectively.   Whatever punctuation  is available is standard.   The
vowel-carrier symbols are `|' (short) and `∞' (long).

	This  covers  all the  characters  common  to  all 3  fonts.    The
remaining  symbols tend  to be  stuffed away more  or less  at random.   In
particular, TNG75 and TNG112  use `∀', `∃',  and `⊗' for the  abbreviations
for `of', `the', and `of the', and also use OU⊂⊃<> for the other forms of o
and u tehtar.
Use of the Fonts
================

	The main  problem in using  the Tengwar fonts  arises in  trying to
position  the tehtar and  related symbols (n,  y, etc.)  above each tengwa.
But all is not black.  The appropriate horizontal and vertical offsets have
been worked  out already for  each tehta-tengwa  combination.  (How  to get
your greedy little hands on this data will be revealed shortly.)

	Of course, even with this information, it  is impossible to use the
fonts directly (i.e.  you can't just xspool an E-file using a Tengwar font)
and it is nearly impossible from PUB (it requires extensive use  of `sneak'
and `beware').  POX is feasible with a modicum of straining, and a suitable
macro  is  shown  on page  6  of  this documentation.  In  fact,  if you're
desperate to use PUB for  this stuff, you can design macros  (using `sneak'
and  `beware' and  a knowledge  of XGP  output format)  which  simulate the
actions of the POX macro.  If, however, all you want is a message using one
Tengwar font and  no other fonts, there is  a program which will do  it for
you, and  which takes roughly phonetic English as  input.  It is documented
next.
The TENGWR Program
==================

	The TENGWR  program  accepts a  roughly phonetic  input format  and
produces  a Tengwar  XGP  file.   It  also does  a minimal  amount  of text
processing; specifically, it  fills each line  with as  many words as  will
fit, and it begins new pages automatically.  It is fairly limited as to how
much  control you have over the output;  you cannot override its margins or
page skips, nor can you  align the right margin.  These and  other features
may be implemented later if enough people grumble.

Input format:

	Upper- and lower-case consonants are  equivalent, and represent the
upper-case tengwa.  Thus  both `D' and `d' may be used to represent the `D'
character.  To get the lower-case tengwa, follow the consonant with `h' (or
`H').   Thus  `DH' gives  the `d'  character, and  `rh' is  the trilled  r.
Upper-case vowels represent `long' vowel sounds.

	The program will automatically recognise places where it should use
the tehtar for preceding  nasal, doubled letter, trailing s at the end of a
word, etc.  It also automatically decides when to use the inverted S  or Z,
and when a vowel-carrier is needed.  Thus, for example, the sentence:

	"Frodo only wanted the simple things in life."

might be written (depending on your phonetic tastes):

	"frOdO Only wanted ∃ simpl thingz in lIf."

	Note the use of `∃'  for `the'.  This is NOT  done automatically by
the program.   In the above sample, the program would produce the following
sequence of characters for  `frOdO': An `F', an `R',  a `D' with a  doubled
`o' tehta, and a long vowel carrier with an `o' tehta.  For the word `Only'
it would  produce a single tengwa: An `L' with a doubled `o' tehta, a nasal
bar, and a double-dot for following `y'.  The program is also clever enough
to  realise that  the preceding  nasal is  `m' instead  of `n'  for certain
letters.

	Certain special characters are also allowed.  A `~' is ignored, and
may thus be used to separate characters  which would otherwise be combined.
For  instance, the word `adhere'  might be written `ad~hEr'  to prevent the
`dh' from being combined into a single tengwa.  An `α' at the  beginning of
a word forces the word to be at  the beginning of a new line; n+1 `α's will
cause  n blank lines.   (Blank lines and multiple spaces  in the input file
are ignored.) To  force multiple spaces ahead  of a word, particularly  for
indentation after an `α', precede the word with `β's.  The `β's must follow
the `α's, if any.  For instance, to leave a blank line and then start a new
paragraph with the word `frog', indented 5 spaces, you'd use: ααβββββfrog.

	As for the mechanics of using the TENGWR program, it asks first for
the size of the  font desired (small, medium, or large), then for the input
file name.  The  default suffix is .TNG.   The output is  to a file by  the
same name but with suffix .XGP in the local directory.  Upon exit, the line
editor is set up with the XSPOOL command.
Using Tengwar from POX
======================

	In order to use  the Tengwar fonts effectively from  POX, you first
have to know  the horizontal and vertical offsets for positioning any given
tehta above (or below) any given tengwa.  To get this information,  run the
TENGWR program, specify  the size font you're interested in,  and then give
it  a null file name.  It will  produce a file called SAMPLE.XGP containing
all the information you need, plus some other esoteric tidbits, in a mystic
format.

	Ignoring  the esoteric  tidbits,  you are  left with  4  columns of
information on the right-hand  side.  Tucked away  in these 4 columns  are,
for  each tengwa,  12  pieces of  data.   Each  datum  is printed  as  some
identifying symbol (such as `a' for the position of the `a' tehta) followed
by a right-arrow (→)  and a number, possibly  followed by a down-arrow  (↓)
and another  number.  These  two numbers represent the  required horizontal
and vertical (downward) offsets required.

	For each tengwa, the information is displayed thusly:

a	(α)	β	≡
e	o1	no	y
i	o2	noo	s

with the following interpretations:

a	position for the `a' tehta
e	position for the `e' tehta
i	position for the `i' tehta
(α)	position for the `o' and `u' tehtar (α is explained below)
o1	position for first tehta if `o' or `u' is doubled (long vowel)
o2	RELATIVE position from o1 for second tehta
β	position for the nasal bar (β is explained below)
no	position for nasal bar if `o' or `u' tehta is present
noo	position for nasal if doubled `o' or `u' is present
≡	position for double (`long' consonant) bar (character `≡' in font)
y	position for following `y' mark (character `y' in font)
s	position for trailing `s' curl (character `~' in font)

The values shown may  be garbage for inapplicable cases, such  as the nasal
bar on vowel carriers, or trailing `s' on the `S' tengwa.

	In the above description,  `α' is some digit from 0  through 3, and
designates which characters  to use for the `o' and `u' tehtar, as detailed
in the following table:

α     Single (short) vowel	First of long vowel (o1)     Second (o1+o2)

0	   `⊂' or `⊃'		       `o' or `u'	       `o' or `u'
1	   `O' or `U'		       `⊂' or `⊃'	       `⊂' or `⊃'
2	   `o' or `u'		       `o' or `u'	       `o' or `u'
3	   `o' or `u'		       `o' or `u'	       `<' or `>'

The `β' indicates the appropriate nasal sound  corresponding to the tengwa,
either N or M.  If `β' is neither of these (typically it may be ∞, `, or n)
then there is no nasal corresponding to that symbol.

	Once you have  all this marvelous  information, here's a  POX macro
that makes use of it.  It's called `tt' (for `tehtar'), and it assumes that
`\' is the POX escape character.

\8tt(char,left,down)[\←.\+=⊗left⊗;\→.\↓=⊗down⊗;⊗char⊗\⊗⊗\-=⊗left⊗;\→.]

Once you've defined the above macro, you can use  it to position each tehta
relative to the  attached tengwa, prior to printing the tengwa itself.  (It
should be  noted that all  of the  tehtar and  other special  marks have  a
character width  of zero in the  fonts; the above macro  doesn't need this,
but you might find it handy if you want to design more powerful macros.) As
a sample, here is how you  would print "this is a small sample  of tengwar"
using TNG112.

d\!tt(i,20);∂ \!tt(i,20,-26);¬ \!tt(a,4);∞ SM\!tt(a,41);\!tt(≡,32,24);L
S\!tt(a,16)\!tt(n,19)PL \!tt(⊂,11)F T\!tt(e,24)\!tt(n,23)GW\!tt(a,16)R

Notice that  you have  to remember  yourself to  use the inverted  S and  Z
symbols  (∂ and  ¬).   Your memory  will be  jogged in  this regard  by the
garbagy values given for positioning tehtar above the un-inverted forms.